//
//  luoerNetworkTool.swift
//  WeiBoStudy
//
//  Created by luoerliu on 16/5/14.
//  Copyright © 2016年 刘文平. All rights reserved.
//

import UIKit
import AFNetworking
//请求类型的枚举
enum RequestMethod: String
{
    case GET = "GET"
    case POST = "POST"
}
class luoerNetworkTool: NSObject {

//    单例
    static let sharedInstance: luoerNetworkTool = luoerNetworkTool()
//    定义一个AFHttpSessionManager属性
    private let AfnManager:AFHTTPSessionManager =
    {
        let afn =  AFHTTPSessionManager(baseURL: NSURL(string:"https://api.weibo.com/"))
            // 给响应的序列化器多添加支持的类型
            afn.responseSerializer.acceptableContentTypes?.insert("text/plain")
       return afn
    }()
//    自己写一个方法，在方法中调用AFN的网络请求方法，而不是直接使用AFN的网络请求方法，从而降低耦合性，便于后期维护
    func request(method:RequestMethod,URLString:String,parameters: AnyObject?,success:((NSURLSessionDataTask, AnyObject?) -> Void)?,failure:((NSURLSessionDataTask?, NSError) -> Void)?)
    {
        if method == RequestMethod.GET
        {
              AfnManager.GET(URLString, parameters: parameters, progress: nil, success: success, failure: failure)
        }
        else
        {
              AfnManager.POST(URLString, parameters: parameters, progress: nil, success: success, failure: failure)
        }
    }
}
